This invention relates to a system and method for the distributed supervision (including the selective modification) of an interrupt-responsive operating system of a programmable digital computer.
Operating Systems
Operating systems typically consist of sophisticated computer programs that include sets of instructions, commonly referred to in the generic sense as routines, for handling most of the actual control of a computer's hardware. Many operating system routines are written to be callable by other programs. In other words, generally speaking, an appropriate instruction within such a calling program causes an operating-system routine to be executed, in effect as though the operating-system routine were an integral part of the calling program itself.
The use of such routines can reduce the complexity of and the time required to write other programs. For example, a program designer who wants to read data from a storage device can utilize a call to an existing operating system routine for that purpose, thereby avoiding the need to write such a routine anew.
Interrupts
An interrupt may be broadly defined as an event that causes the computer to cease its present operation and, among other things, to execute one or more predetermined interrupt-handling (IH) routines stored in addressable storage such as random-access memory (RAM) or virtual memory. Many computers are responsive to hardware interrupts, while some computers may provide (either alternatively or additionally) for software interrupts.
A typical use of interrupts is to request operating system services by calling specific operating system routines. For example, a user program might use an interrupt to cause the computer to execute a routine that results in making a particular storage device available to the user program.
For flexibility purposes, part of the processing of interrupts is commonly handled using an indirect addressing approach. The computer is commonly programmed (sometimes in software, sometimes in microcode) to consult a table, or other block of formatted information, of addresses for IH routines as part of its response to the occurrence of an interrupt event. Each such address is commonly referred to as a "vector" and the table of vectors as a "vector table."
Each entry in such an IH vector table provides the address (i.e., the specific location in addressable storage) of an IH routine for a particular type of interrupt. In other words, the various IH vector table entries serve as pointers to the IH routines to be executed upon the occurrence of various types of interrupt.